package com.zsrt.day20161013;

import java.util.Scanner;

import org.junit.Test;

public class Zuoye20161013 {
	/**
	 *  在 数组leaders【】中 随机抽查2个人 要求这2个人不同
	 *  方法一
	 */
	@Test
	public void randomTest1(){
		System.out.println("随机出2次不重复的人名:");
		String[] leaders={"关琛", "郑智强","曹耿珲","所志松","曾瑶"};
		int len=leaders.length;
		for (int i = 0; i < 2; i++) {
			int random=(int)Math.floor(Math.random()*len);
			System.out.println(leaders[random]);
			leaders[random]=leaders[len-1];
			len--;
		}
	}
	
	/**
	 *  在 数组leaders【】中 随机抽查2个人 要求这2个人不同
	 *  方法二
	 */
	@Test
	public void randomTest2(){
		String[] leaders={"关琛", "郑智强","曹耿珲","所志松","曾瑶"};
		int len=leaders.length;  //定义数组长度
		//随机出第一个数 ，并且输出
		int random=(int)Math.floor(Math.random()*len); 
		System.out.println(leaders[random]); 
		//定义一个新数组，
		String[] newleaders=new String[len-1];
		//把原数组中随机出来的第一个数删除后，原数组中的数再放入新数组
		for(int index=0;index<newleaders.length;index++){
			if(index<random){
				newleaders[index]=leaders[index];
			}else{
				newleaders[index]=leaders[index+1];
			}
		}
		//在新数组里随机取一个数 ，达到 随机两次避免出现相同结果 的目的
		int random1=(int)Math.floor(Math.random()*newleaders.length);
		System.out.println(newleaders[random1]);
		}
	
	/**
	 *  在 数组leaders【】中 随机抽查2个人 要求这2个人不同
	 *  方法三
	 */
	@Test
	public void randomTest3(){
		String[] leaders={"关琛", "郑智强","曹耿珲","所志松","曾瑶"};
		int first = -1;  //定义第一次抽取结果的一个变量
		int second = -2;  //定义第二次抽取结果的一个变量
		int random1=0;
		for(int i=0;i<2;i++){
			if(i==0){
				random1 = (int)Math.floor(Math.random()*5);
				System.out.println("=========");
				System.out.println(leaders[random1]);
				first = random1;
			}else{
				second = random1;
				while(first==second){
					int random2 = (int)Math.floor(Math.random()*5);
					second = random2;
				}
				System.out.println(leaders[second]);
			}
		}
	}
	
	/**
	 * 随机数random 为double类型 取值范围是: 0<=random<1
	 * 10元 发两个红包
	 */
	@Test
	public void redbagRandom1(){
		int reg1 = (int)(Math.random()*10);
		int reg2 = 10 - reg1;
		if(reg1==0){
			reg1=1;
		}
		System.out.println("恭喜你抢到的第一个红包为： "+reg1);
		System.out.println("恭喜你抢到的第二个红包为： "+reg2);
	}
	
	/**
	 * 发5个红包......   算法：　　前面2个人 随机得到30%的钱   后面3个人 随机得到70%的钱
	 */
	@Test
	public void redbagRandom2(){
		int rg1 = (int)(Math.random()*30); //100块的红包 的30%的钱
		int rg2 = 30-rg1;
		if(rg1==0){
			rg1=1;
		}
		System.out.println("红包1： "+rg1);
		System.out.println("红包2： "+rg2);
		int rg3 = (int)(Math.random()*70);
		int rg = 70-rg3;
		int rg4 = (int)(Math.random()*rg);
		System.out.print("红包3： "+rg3+"\r\n"+"红包4: "+rg4+"\r\n"+"红包5: "+(rg-rg4));
	}
	
	@Test
	public void redbagRandom3(){
		System.out.println("发5个红包,请输入要发的金额：");
		Scanner sc=new Scanner(System.in);
		int reg=sc.nextInt();
		sc.close();
		int reg1=reg*30;//前两次
		int reg2=reg*70;//后三次
		for (int i = 1; i < 6; i++) {
			if(i<3){//前两次要发的
				double random=Math.floor(Math.random()*reg1);
				if(i==2){
					random=reg1;
				}
				reg1-=random;//发往第一个后的余额
				System.out.println("第"+i+"个红包："+random/100+"元");
			}else{
				//后三次发的
				double random=Math.floor(Math.random()*reg2);
				if(i==5){
					random=reg2;
				}
				reg2-=random;//余额
				System.out.println("第"+i+"个红包："+random/100+"元");
			}
		}
	}
	

}
